let express = require("express");
let path = require("path");
let fs = require("fs");
let fsp = fs.promises;

let Router = express.Router();  // 创建路由

// 账号
// 商品
// 购物车
// 收藏
// 订单


// Router.get()
// Router.post()
// Router.all()

// 路由配置: 拦截器以get方式向/data发起的请求
Router.get("/data", function (req, res) {
    res.end("welcome to /data");
})

Router.post("/data", function (req, res) {
    res.end("welcome to /data");
})


// req.query  接收前端以get方式传递的数据(express中可以直接用)
// req.body;  // 接收前端以post方式传递的数据 (formData  json)

// 路由配置: 拦截以get方式向/users 发起的请求
Router.get("/users", function (req, res) {
    var { name = "" } = req.query;
    var msg = {};
    if (name) {
        fsp.readFile(path.join(__dirname, "../data/users.json"), "utf-8").then(txt => {

            var list = JSON.parse(txt);
            var findData = list.find(v => v.name == name);

            if (findData) {
                msg.status = true;
                msg.message = "OK";
                msg.data = findData;

                // res.end(JSON.stringify(msg));
                res.json(msg); // 接收一个js对象 -> json字符串
            } else {
                msg.status = false;
                msg.message = "该用户不存在";
                // res.end(JSON.stringify(msg))
                res.json(msg);
            }
        })
    } else {
        fsp.readFile(path.join(__dirname, "../data/users.json"), "utf-8").then(txt => {
            var list = JSON.parse(txt);

            msg.status = true;
            msg.message = "OK";
            msg.data = list;

            // res.end(JSON.stringify(msg));
            res.json(msg);
        })
    }

    // res.end("welcome to /users");
})

Router.post("/users", async function (req, res) {
    var body = req.body;  // 接收前端以post方式传递的数据 (formData  json)
    // console.log(body);
    // res.json(body);

    var txt = await fsp.readFile(path.join(__dirname, "../data/users.json"));
    var list = JSON.parse(txt);

    var index = list.findIndex(v => v.name === body.name);
    var msg = {}
    if (index == -1) {  // 用户不存在  => 追加数据
        msg.status = true;
        msg.message = "用户不存在,追加数据";
        list.push(body);
    } else {
        msg.status = true;
        msg.message = "用户存在,替换数据";
        list.splice(index, 1, body);
    }

    console.log(11111111, msg);
    fsp.writeFile(path.join(__dirname, "../data/users.json"), JSON.stringify(list), { encoding: "utf-8", flag: "w" }).then(() => {
        res.end(JSON.stringify(msg))
    })
})



module.exports = Router;
